﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace UniRx
{
	// Token: 0x02000419 RID: 1049
	public interface IReadOnlyReactiveDictionary<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
	{
		// Token: 0x170001A5 RID: 421
		// (get) Token: 0x0600159C RID: 5532
		int Count { get; }

		// Token: 0x170001A6 RID: 422
		TValue this[TKey index]
		{
			get;
		}

		// Token: 0x0600159E RID: 5534
		bool ContainsKey(TKey key);

		// Token: 0x0600159F RID: 5535
		bool TryGetValue(TKey key, out TValue value);

		// Token: 0x060015A0 RID: 5536
		IObservable<DictionaryAddEvent<TKey, TValue>> ObserveAdd();

		// Token: 0x060015A1 RID: 5537
		IObservable<int> ObserveCountChanged();

		// Token: 0x060015A2 RID: 5538
		IObservable<DictionaryRemoveEvent<TKey, TValue>> ObserveRemove();

		// Token: 0x060015A3 RID: 5539
		IObservable<DictionaryReplaceEvent<TKey, TValue>> ObserveReplace();

		// Token: 0x060015A4 RID: 5540
		IObservable<Unit> ObserveReset();
	}
}
